小心你的VS Code 扩展!
大家好,我是TJ
一个励志推荐10000款开源项目与工具的程序员
出品 | OSC开源社区(ID:oschina2013)
Aqua Nautilus 研究人员最近发现,攻击者可以轻松地冒充流行的 Visual Studio Code 扩展并诱骗不知情的开发人员下载它们。VSCode 是迄今为止最受欢迎的 IDE;StackOverflow 的一项调查指出,其目前已被 74.48% 的开发人员所使用。VSCode 的强大之处在于其种类繁多的扩展,VSCode Marketplace 中共有超过 40,000 个扩展。
作为 VSCode 用户,所使用的 VSCode 扩展是否值得信赖或合法也是一个问题。根据介绍,虽然有几种功能有助于保护开发人员免受恶意扩展的侵害。譬如,微软保证对每个新扩展和每个扩展更新都运行病毒扫描。在扫描结果一切正常之前,该扩展不会发布在 Marketplace 上供公众使用。以及采取了一些措施来防止名称抢注,即名称故意与知名名称相似。开发人员还可以观察扩展是否有蓝勾,该标识意味着发布者已经验证了一个 web 域名的所有权(有些正版扩展也并没有进行验证,如 Prettier 等)。
Marketplace 中的热门扩展
但研究人员指出,即使对于具有安全意识的开发人员来说,想要准确区分恶意和良性扩展也是一项挑战。并提出了几点论据:
任何人都可以注册成为扩展发布者,甚至使用一个新的一次性电子邮件地址。
扩展的扩展名称和发布者名称不必是唯一的,可以复制现有名称。在给出的例子中,研究人员以流行的 VSCode 扩展 Prettier 为例,创建了一个伪装的新扩展。仔细查看 URL 可发现,区别在于发布者名称(esbenp 与 espenp)和扩展名(prettier-vscode 与 pretier-vscode)。当用户正确搜索 Prettier 扩展时,该模拟扩展出现在第 26 位,风险很低。但如果开发人员无意中错误输入为 “pretier” 时,该伪装扩展则是唯一的搜索结果。
正版
盗版
发布者的蓝勾仅证明对一个域的所有权。“发布者可以购买任何域名并注册它以获得那个验证的勾号。”
下载和评论的数量是有用的,但这些东西可以编排和伪造。
Aqua 团队未能证明恶意扩展可以通过 Microsoft 的病毒检查程序。但数据表明,其所发布的 Prettier 伪装扩展,在不到 48 小时的时间在全世界范围内被安装了 1000 多次。VS Code 扩展以与用户相同的权限运行,因此如果安装恶意扩展,很可能会造成损害。
研究人员总结称,恶意 VSCode 扩展的威胁是真实存在的。过去可能因为没有发生过有重大影响的事件,而导致其没有受到很多的关注。然而,攻击者一直在努力扩展他们的技术库,使他们能够在组织网络内运行恶意代码。“作为研究人员,我们在这里揭示此类威胁并提高社区对这些新的潜在切入点的认识。”
同样重要的是要注意 VSCode 扩展是用 Node 编写的,并且包是从 NPM 下载的,从而还一直存在着恶意代码包被上传到 NPM 等软件包管理器的威胁。因此存在这样的实际风险:即不知情的合法开发人员可能会在不知不觉中使用来自 NPM 的恶意包作为其扩展的依赖项,从而导致整个扩展遭到破坏,并在不知不觉中危及社区。
除了 VSCode 扩展,Marketplace 还提供 Visual Studio 和 Azure DevOps 的扩展;它们也存在同样的风险,不过研究人员暂时还未追踪到相关线索。“像往常一样,对你安装的扩展保持警惕,并记住每个扩展都是以用户的权限运行的。”
详情可查看完整报告:https://blog.aquasec.com/can-you-trust-your-vscode-extensions
往期推荐
点击下方卡片,关注公众号“TJ君”
每天了解一个牛x、好用、有趣的东东